Normally when you talk to a character, you create a "talk" script that controls what happens.
One of the commands you can use is a "variable" command, which is used to store data such as numbers and words, or alter the values of stored data.

This command also has a couple hidden features.



- reading variables, inline -
If you type soemthing like this into the 'value' box:
	[myVar]
... the game will assume that the word written between the [] is the name of another variable and try to read its value.
This can be used to copy the value of one variable to another.
Anything you type outside of the [] will be left untouched and be included the way it's typed, so typing something like:
	Hello [name1], how are you?
Would store something like:
	Hello Jack, how are you?
You can use this trick inside of textboxes too, to display a character's name.
By storing each person's name in variables, it's easy to change their names without having to edit all the textboxes that used it.



- calling functions -
Another hidden feature is a little tricky to use.
It allows you to run any function programmed into the game.
It's basically a hack that allows the editor to do stuff it wouldn't normally be able to do.
Of course, you would have no way to know what functions are coded into the game without seeing the game's FLA file.
But I set aside a special group of functions specifically intended for this pokemon game. They can do things such as storing what a character looks like, or adding characters that follow you around.
In other words, I added some features to this game, but didn't program the game editor to 
use them.
So you need to use a trick. Just like the [] mentioned, you place a "variable" command and type something weird into the value box. Something like:
	[RAM_F.items.addItem(option)]
This particular command would add a potion to your inventory.
The game will read the stuff written between the [] as a variable, but then it'll notice the () at the end and try to call it as a function.
Anything written between the () will be sent to the addItem function.
If you separate the stuff insde the () using commas, it sends it as multiple pieces of info.
Different functions expect different amounts of info, so you'd need to look that up.
Be careful how you type things. Spaces are not ignored. they will get included as part of the info.

Most of the special functions are demonstrated in the test levels.
These are all of the special functions set aside for the pokemon game:
RAM_F.trainers.addTrainer(id)
RAM_F.pokedex.addPokemon(id)
RAM_F.pokedex.removePokemon(id)
RAM_F.pokedex.addPokemonArea(id,x,y)
RAM_F.items.addItem(id)
RAM_F.items.removeItem(id)
RAM_F.equipment.addItem(id)
RAM_F.equipment.removeitem(id)
RAM_F.pokemon.addPokemon(id,level)
RAM_F.pokemon.removePokemon(id)
RAM_F.pokemon.hasTM(moveName)
RAM_F.pokemon.addTM(moveName)
	Adds the TM attack to the trainer.		(doesn't add a TM item)
RAM_F.storage.addPokemon(id,level)
RAM_F.storage.removePokemon(id)
RAM_F.getNickname(name)
RAM_F.shops.restockRandom(itemName)
	Randomly add this item to one of the last 2 shops visited.
RAM_F.copySprite(spriteName,storePath)
RAM_F.party.placeMember(partyMemberName,followSpriteName)
RAM_F.copyObject(src_path,dest_path)
RAM_F.getKeyName(keyCode)

Some special functions spit out a value, such as the "getKeyName" function at the end.
When that happens, the entire [] command gets replaced by that value and stored in the variable.
Most of the special function don't return anything and their [] are replaced with the value "undefined" which will get stored in any variable typed in the upper box (if you typed one)
Usually, when I use these special functions, I leave the top box blank,
so they just run without storing any values.